#ifndef _RENDERER_SAMPLE_SAMPLE_H_
#define _RENDERER_SAMPLE_SAMPLE_H_

#include "../../Basis/RNG.h"

class Vector2;

class Sampler
{
public:
	Sampler(unsigned long long _seed = 7564231ULL);

	void random(Vector2* samples, int num_samples);
	void jitter(Vector2* samples, int num_samples);
	void nrooks(Vector2* samples, int num_samples);
	void multiJitter(Vector2* samples, int num_samples);

	void boxFilter(Vector2* samples, int num_samples);
	void tentFilter(Vector2* samples, int num_samples);

	void random(float* samples, int num_samples);
	void jitter(float* samples, int num_samples);

private:
	RNG m_rng;

	float tentFunction(float sample);
};


#endif